package com.witmore.neutron.ai.api.service;

import com.witmore.neutron.ai.api.dto.MessageDTO;
import com.witmore.neutron.ai.api.enums.ChatClientType;
import com.witmore.neutron.ai.db.entity.ModelConfigDO;
import org.springframework.http.codec.ServerSentEvent;
import reactor.core.publisher.Flux;

public interface ChatClientAdapter {

    /**
     * 获取模型响应结果（非流式）
     */
    String generateResponse(ModelConfigDO modelConfigDO, MessageDTO messageBO);

    /**
     * 获取模型响应结果（流式）
     */
    Flux<ServerSentEvent<String>> generateResponseStreamSSEFlux(ModelConfigDO modelConfigDO, MessageDTO messageBO);

    /**
     * 获取模型类型
     */
    ChatClientType getClientType();

}
